package util;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.widget.ImageView;

import java.lang.ref.SoftReference;

public class BitmapTool {

	public Bitmap getBitmap(String filePath, ImageView imageview) {
        /**
         * 这个类是调整图片大小的类 主要是将获取到的文件流在这里经过bitmap工厂的加工然后成为一张新的图片
         * 然后返回到image中进行显示。。。。
         */
		Bitmap bitmap = null;
        // 使用BitmapFactory.Options实现图片的缩放
		BitmapFactory.Options ops = new BitmapFactory.Options();
        // 设置不加载图片，只加载边界信息
		ops.inJustDecodeBounds = true;

		bitmap = BitmapFactory.decodeFile(filePath, ops);
        // 从ops中获取图片的实际宽和高
		int width = ops.outWidth;
		int height = ops.outHeight;
        // 计算横纵方向的缩放比例
		int xScale = width / 600;
		int yScale = height / 600;
        // 设置最终的缩放比例
		ops.inSampleSize = xScale > yScale ? xScale : yScale;
		System.out.println("���ű���" + ops.inSampleSize);
        // 设置为false（可以使用decode加载图片）
		ops.inJustDecodeBounds = false;
        // 实际根据ops选项值加载图片
		MyBitmap1 bit = new MyBitmap1();
		bit.MyBitamp(BitmapFactory.decodeFile(filePath, ops));

		return bit.get();
	}

	/**
	 * ZoomBitmap 位图缩放
	 */

	public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h) {
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		Matrix matrix = new Matrix();
		float scaleWidht = ((float) w / width);
		float scaleHeight = ((float) h / height);
		matrix.postScale(scaleWidht, scaleHeight);
		Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,
				matrix, true);
		return newbmp;
	}
}

class MyBitmap1 {
	private SoftReference<Bitmap> sf;

	public void MyBitamp(Bitmap bm) {
		sf = new SoftReference<Bitmap>(bm);
	}

	public Bitmap get() {
		return sf.get();
	}
}